/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Validator;

/**
 *
 * @author Cyrax
 */
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

@FacesValidator("Validator.StringValidator")
public class StringValidator implements Validator{
      private static final String STRING_PATTERN = "^[a-zA-Z0-9-]{1,50}$";

	private Pattern pattern;
	private Matcher matcher;

	public StringValidator(){
		  pattern = Pattern.compile(STRING_PATTERN);
	}

	@Override
	public void validate(FacesContext context, UIComponent component,
			Object value) throws ValidatorException {

		matcher = pattern.matcher(value.toString());
		if(!matcher.matches()){

			FacesMessage msg =
				new FacesMessage("String validation failed.",
						"Enter Name  (1-50) characters !");
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			throw new ValidatorException(msg);

		}

	}

}
